/*全排列*/

let arr=['a','b','c'];
var rs=[arr];
var count=1;
let per_arr=permutation(arr,0);

console.log(rs);

console.log("count",count);
/**递归法 */
function permutation(arr,index){
    //如果当前位置到末尾则结束
    
    if(index==arr.length-1){
        return;
    }
    for (let i = index; i <arr.length ; i++) {

        console.log(index,i);
        
        //当前位置和下一位调换
        swap(arr,index,i);
        if(i!=index){
            //把结果放到结果集
            rs.push(arr.slice());
            count++;
        }
        
        //递归，当前位置+1
        permutation(arr,index+1);
        //调换回来
        swap(arr,i,index);
    }
    
}

function swap(arr,i,j){
    let _arr=arr;
    if(_arr && _arr[i] && _arr[j]){
        let tmp=_arr[i];
        _arr[i]=_arr[j];
        _arr[j]=tmp;
    }
    return _arr; 
}